Hobby Lab 趣味のモノ作り実験のサイトです。
Software 開発環境 CH32 開発環境_MounRiver Studio
1  MounRiver Studioはじめに
 1.1 MounRiver Studioの概要
 1.2 WCH-LinkE の設定
 1.3 MounRiver Studioの準備
 1.4 プログラムの書き込み
 1.5 プログラムの格納場所
 1.6 Terminal の設定
2. MounRiver Studio関数
 2.1 ch32v20x_adc.h
 2.2 ch32v20x_bkp.h
 2.3 ch32v20x_can.h
 2.4 ch32v20x_crc.h
 2.5 ch32v20x_dbgmcu.h
 2.6 ch32v20x_dma.h
 2.7 ch32v20x_exti.h
 2.8 ch32v20x_flash.h
 2.9 ch32v20x_gpio.h
 2.10 ch32v20x_i2c.h
 2.11 ch32v20x_iwdg.h
 2.12 ch32v20x_misc.h
 2.13 ch32v20x_opa.h
 2.14 ch32v20x_pwr.h
 2.15 ch32v20x_rcc.h
 2.16 ch32v20x_rtc.h
 2.17 ch32v20x_spi.h
 2.18 ch32v20x_tim.h
 2.19 ch32v20x_usart.h
 2.20 ch32v20x_usb.h
 2.21 ch32v20x_wwdg.h

Pr:Prプロセッサ関係
PrP:プロセッサ
動作比較
 STM32F動作比較
 CH32V203&STM32F 動作比較
 arduino動作比較
raspberrypi関係
 RaspberryPiハード
CH32V関係
 -CH32V開始
 -203K8T6(32Pin)開始
 -203C8T6(48P)開始
 -003J4M6(8Pin)開始
 -003F4P6(20Pin)開始
 -Moun River StudioⅡ
 プログラミング!
  203_GPIO関係
  203_TIME関係
  203_TIME Encoder
  203_I2C関係
  203_1-Wire関係
  003_DS18B20テスター
  USART(UART)関係
  DS18B20をModBus制御
 -マニュアル
 203データシート
 203取説
  MBA メモリとバス方式
  PWR 電力制御
  RCC リセット・拡張・クロック
  BKP バックアップレジスタ
  CRC 巡回冗長検査
  RTC リアルタイムクロック
  GPIO GPIOと代替機能
  DMA ダイレクトメモリアクセス制御
  ADTM 高度な制御タイマー
  GPTM 汎用タイマー
  BCTM 基本タイマー
  USART 同期非同期通信
arduino関係
 ESP12関係
 (a)ESP-8266D1mini注意
PrP:その他  RS485ドライバー
 CP2102 BRIDGE
 WCH-LinkEエミュレーター

Sf:IDE 開発環境
SfI:STM32
 STM32CubeIDEでプログラム
 HALと直接レジスター操作の速度
SfI:CH32
 MounRiver Studioでプログラム
SfI:Arduino
各ボード毎の設定
 Uno 設定
 Mega2560 設定
 DUE_CH340 設定
 ESP_WROOM02 設定
 ESP12F_D1mini 設定
 ESP32 設定
 CH32V 設定
ライブラリー
 OneWire使い方
その他
 日本語リファレンス(外部リンク)
 WiFi Macアドレスを調査
Sf:OS関係
SfO:Mint 関係
 PCへMint導入
 アプリ導入
 その他1
 アイコンを作る
SfO:Ubuntu 関係
 PCへUbuntu導入
 アプリ導入
SfO:RaspberryPi 関係
はじめに
 RaspberryPiへOS導入
 アプリ導入
 Programming
シェル・コマンド関係
 LXTerminal
 sed
 i2ctools
I/O・アプリ関係
 RealVNCとViewer
 IO動作確認
 MySQL
 Python
 raspberrypiハード
Sf:Server 関係
SfS:レンタルサーバー
 CORE-X
SfS:Windowsサーバー
 XAMPPの概要と導入
 Note XAMPP
 Note XAMPP Err
 Note Apache
 Note PHP
 Note MyQSL
Sf:Programming関係
C 関係
 C言語でプログラムミング
Python 関係
はじめに
 RaspberryPi開始
 Windows開始
共通事項
 プログラミングNote
 パッケージ導入 pip
 標準ライブラリ
 Serialライブラリ
 SMBusライブラリ
HTML関係
 開始とNote
Sf:AP アプリ関係
SfA:エディタ
SfA:回路図CAD
SfA:回路シミュレータ
 シミュレーションの設定
 色の設定
 電源設定設定
SfA:リモートソフト
Sf:Pt プロトコル関係
SfPt:MODBUS
Sf:Otgers その他
?>

1. MounRiver Studioはじめに

(1)MounRiver Studio概要

ホームページの About によると
MounRiver Studioは、Eclipse GNU版をベースに開発されています。
オリジナルのプラットフォームの強力なコード編集機能と便利なコンポーネントフレームワークを維持しながら、組み込みC/C++開発ができる。
そしてツールチェーン開発向けに、インターフェース、機能、操作の修正、最適化を多数施しています。
と記載されており、MounRiver Studioから Windows,MAC,Linux版がダウンロードできます。
私は MounRiverStudio_Linux_X64_V220.deb をダウンロードして、パッケージをGDebiパッケージインストーラでインストール(ファイルをダブルクリック)しました。
起動した状態は下図のようになります。使用方法はいつの日か別のページで記載したい。

(2)WCH-LinkE の設定

WCH-LinkEのモード切替はこの MounRiverStudio から変更ができる。
・WCH-LinkE をパソコンに接続する。
・MounRiverStudio の 「 Flash 」 の 「 Download Configuration 」 を選ぶ。

下図のダイヤログボックスが表示される。
・項目「 Debugger Taeget Mode: 」 で [ ARM ] または [ RISC-V ] が選択出来る。

・今回は [ RISC-V ] を選択して [ Query ] をクリックして [ Apply ] をクリックすることにより WCH-LinkE 内のLED点灯具合によりモード切替された事が判る。

(3)MounRiver Studioの準備

a.今回は CH32V293K8T6 の開発環境として設定する。
・MounRiverStudio の 「 File 」 の 「 New 」 、「 MounRiver Project 」 を選ぶ。

・続いて New MounRiver Project のダイヤログボックスが表示される。
 ・WCH の 項目で [ CH32V203 [RISC-V] ] を選択。
 ・右横の項目で [ CH32V203K8T6 ] を選択。
 ・右下の [ Finish] ボタンをクリックして設定が完了する。

b.プログラミング
・MounRiverStudio の 左側に「EXPLORER」と言う項目がありその下に「User」、「main.c」と言う項目をダブルクリックする。
・MounRiverStudio の 右側でプログラムを書く。下図の例はPA0端子で電圧を 入り/切り するもの。
 

(4)プログラムの書き込み

プログラムが完了すれば、次は書き込みとなる。
a.[ Rebuild project ]をクリックして

 下欄の「Output」 メッセージでエラーが無いことを確認する。

b.[ Download ] ボタンをクリックして

 下欄の「Output」 メッセージでエラーが無いことを確認する。

右写真の様にLEDが点滅を始める。
使用した回路
下の写真は1秒の待ちをプログラムに追加してLEDの点滅で動作を判るようにした。

(5)プログラムの格納場所

ホームディレクトリーに『mounriver-studio-projects』のディレクトリーが作成され、その中にプロジェクト名でディレクトリーが作成され、各フィルが格納される。

(6)Terminal の設定

MounRiverStudioの下欄に[Terminal]機能を付加できる。
・下欄にTerminalの付加方法
上のメニュー[Window]➡[Open view]で [view]から[Terminal]を選択すると下欄に表示されます。

・Terminalの設定

 上のメニュー[Window]➡[Preference]で
 Setringsが表示され [User]➡[Extensions]➡
[Serial Terminal]➡[Serial port:Configurations]で

 例えば
 Baud rate 115200
 No parity bit n(n|e|o), default is n
 Data bits 8(5|6|7|8)bit, default is 8
 Stop bit 1(1|1.5|2)bit, default is 1
 なら

   115200n81

 と入力して  [OK] で変更になる。

なおWCH-LinkEの RXとTXを
   モニターするMCUに接続すること。






2. MounRiver Studio関数

Version:2.2.0のものを記載する。 MounRiver Studioで使用されているGPIO_InitTのような関数は、ペリフェラルライブラリ関数(Peripheral Library function)と呼ばれる。
詳細
ペリフェラル(Peripheral): マイコン(MCU)が持つ、CPUの周辺にある機能ブロックのことです。GPIO(汎用入出力)やタイマー、UARTなどがこれに該当する。
ペリフェラルライブラリ(Peripheral Library): 各ペリフェラルを制御するための関数群をまとめたライブラリだ。
レジスタを直接操作するのではなく、関数を呼び出すだけで設定ができるため、開発を効率化し、可読性を高めることができる。
GPIO_Init: GPIO(汎用入出力)をInit(初期化)するための関数です。これにより、ピンのモード(入力、出力など)、速度、プルアップ・プルダウン抵抗といった設定を行う。
MounRiver Studioは、RISC-Vマイコンを扱うための開発環境であり、メーカーが提供するペリフェラルライブラリを利用してプログラミングを行うのが一般的だ。

端末から開発しているプログラムを格納しているディレクトリー内で ch32v****.h を検索する。

hobbylab@GZBOX:~/mounriver-studio-projects/CH32V203C8T6_GPIO_ex$ ls
CH32V203C8T6_GPIO_ex.launch Core Ld Startup obj
CH32V203C8T6_GPIO_ex.wvproj Debug Peripheral User
hobbylab@GZBOX:~/mounriver-studio-projects/CH32V203C8T6_GPIO_ex$ find -name "ch32v*.h"

上記コマンドを実行すると、下記一覧表のヘッダーファイルが見れる。
※ただし、コメント以降は今回説明様に追加した。
./User/ch32v20x_it.h
./User/ch32v20x_conf.h
./Peripheral/inc/ch32v20x.h
./Peripheral/inc/ch32v20x_adc.h
./Peripheral/inc/ch32v20x_bkp.h
./Peripheral/inc/ch32v20x_can.h
./Peripheral/inc/ch32v20x_crc.h
./Peripheral/inc/ch32v20x_dbgmcu.h
./Peripheral/inc/ch32v20x_dma.h
./Peripheral/inc/ch32v20x_exti.h
./Peripheral/inc/ch32v20x_flash.h
./Peripheral/inc/ch32v20x_gpio.h
./Peripheral/inc/ch32v20x_i2c.h
./Peripheral/inc/ch32v20x_iwdg.h
./Peripheral/inc/ch32v20x_misc.h //NVIC
./Peripheral/inc/ch32v20x_opa.h
./Peripheral/inc/ch32v20x_pwr.h
./Peripheral/inc/ch32v20x_rcc.h
./Peripheral/inc/ch32v20x_rtc.h
./Peripheral/inc/ch32v20x_spi.h
./Peripheral/inc/ch32v20x_tim.h
./Peripheral/inc/ch32v20x_usart.h
./Peripheral/inc/ch32v20x_usb.h
./Peripheral/inc/ch32v20x_wwdg.h

2.1 ch32v20x_adc.h



2.2 ch32v20x_bkp.h



2.3 ch32v20x_can.h



2.4 ch32v20x_crc.h



2.5 ch32v20x_dbgmcu.h



2.6 ch32v20x_dma.h



2.7 ch32v20x_exti.h



2.8 ch32v20x_flash.h



2.9 ch32v20x_gpio.h



2.10 ch32v20x_i2c.h



2.11 ch32v20x_iwdg.h



2.12 ch32v20x_misc.h



2.13 ch32v20x_opa.h



2.14 ch32v20x_pwr.h



2.15 ch32v20x_rcc.h



2.16 ch32v20x_rtc.h



2.17 ch32v20x_spi.h



2.18 ch32v20x_tim.h



2.19 ch32v20x_usart.h



2.20 ch32v20x_usb.h



2.21 ch32v20x_wwdg.h







































更新日 2025/12/28 17:37  管理者 平林 剛Hirabayashi Takeshi